home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
progtool
/
c
/
egem_210
/
egem
/
e_gem.txt
Wrap
Text File
|
1995-11-25
|
16KB
|
344 lines
EnhancedGEM-Library Version 2.10
-----------------------------------
(c) 1994 Christian Grunenberg
Wichtigste Änderungen gegenüber der letzten Version:
-----------------------------------------------------
(genaue Änderungen s. History und Anleitung)
- mehr als 50 neue u. 12 geänderte Funktionen
- neue Beispielprogramme zur Demonstration der Fensterroutinen
(u.a. Resource-Previewer, Clipboard-Viewer, XClipboard und ein einfacher
Datei-Viewer (Text, Image, ASCII-Dump))
- Light-Version der Library durch Definition des Makros 'SMALL_EGEM'
- komplette Fensterverwaltung, u.a. optional Redraw und Scrolling durch
die Library, Ikonifizierung (ICFS,MTOS und ansonsten ICFS-kompatibel
dank Dirk Haun)
- Unterstützung diverser Drag&Drop-Varianten als Empfänger und Sender
- Fensterdialoge können jetzt alle Fensterelemente besitzen
- optimierte Ereignisverwaltung, u.a. schnellere Timer und gepufferte,
interne Nachrichtenverwaltung sowie 4 Timer-Events
- Clipboard-Protokoll an offizielle Version angepaßt
- System- (mit Überschrift)/Applikationsmodale Alertboxen, bis zu 16
Zeilen Text, Text der Alertbox optional mit allen Textattributen
- Definition des View-Protokolls integriert
- Eingabefelder in Dialogen können Text per ACC_TEXT empfangen
- alle Eingabefelder eines Dialogs mit Shift-Esc löschen
- TriState-Checkboxen (Checkboxen mit TOUCHEXIT-Flag)
- beliebige GDOS-Fonts/-Größen sowie VDI-Schreibmodi bei Attribut-Text
- nicht-proportionale GDOS-Fonts in Eingabefeldern, sofern dies vom AES
unterstützt wird
1. Rechtliches:
-----------------
EnhancedGEM ist inklusive aller Quelltexte (in C und Assembler) und
(Beispiel-) Programme Freeware, d.h. jedermann/-frau darf EnhancedGEM
beliebig oft und lang kopieren, benutzen und weitergeben.
Allerdings darf das Archiv nur unverändert weitergegeben werden, d.h.
u.a. dürfen keine Dateien gelöscht oder Änderungen/Erweiterungen in den
Sourcen vorgenommen werden. PD-Versender oder kommerzielle Mailboxen,
welche mit Gewinn arbeiten, dürfen EnhancedGEM NICHT verbreiten, solange
sich diese nicht ein schriftliche Genehmigung bei mir eingeholt haben.
Eine kommerzielle Nutzung der Library für Share- oder Löhnware ist unter-
sagt, sofern sie nicht mit mir abgesprochen wurde! U.a. erwarte ich in
diesem Fall entweder eine einmalige, geringe "Entschädigung" oder
alternativ eine geringe Beteiligung an der Sharewaregebühr bzw. dem
Verkaufspreis (1 bis 2 Mark pro Stück bzw. abhängig vom Preis auch mehr
oder weniger). Für private Projekte sowie Freeware-, Fairware- oder PD-
Software gelten diese Einschränkungen natürlich nicht.
Für die einwandfreie Funktionalität der Library kann und will ich nicht
garantieren und übernehme daher keinerlei Verantwortung für Schäden je-
glicher Art, die von der Library oder den beiliegenden Programmen verur-
sacht werden.
Die Benutzung von EnhancedGEM erfolgt somit auf EIGENE Gefahr!
2. Support:
-------------
Die neueste Version der Library ist jeweils in der Maus Stuttgart 2
(Tel.: 0711-6364625) erhältlich oder kann direkt bei mir bezogen werden
(frankierten und adressierten Rückumschlag an mich senden). Bei Fragen
und/oder Fehlermeldungen kann man sich ebenfalls an mich wenden.
Christian Grunenberg
Traminerweg 5
D-71717 Beilstein
Tel.: 07062 - 5287 (möglichst nicht vor 12 Uhr)
E-Mail:
Christian Grunenberg@S2 (Mausnet)
Christian_Grunenberg@S2.maus.de (Usenet)
3. Fähigkeiten und Bedienung:
-------------------------------
- Resource-Previewer
- läßt sich mit GNU-C, Pure C und Lattice C einsetzen
- an MultiTOS, MiNT (Programme laufen u.a. in der MiNT-Domain),
Mag!X (ab V2.0), Geneva sowie Winx (ab V2.1) angepaßt
- Definitionen der Protokolle XAcc2, AV, Menü, Clipboard, View
und Drag & Drop
- XAcc2-, AV-, Clipboard- und Drag&Drop-Protokolle werden automatisch
unterstützt
- verbesserte Ereignis-Verwaltung mit 4 Rechteck-, 2 Button- und
4 Timer-Events sowie optimierte Pufferung von (Fenster-) Nachrichten
bei geöffneten systemmodalen Dialogen oder Popups (u.a. werden
mehrfache Nachrichten sowie Redraws zusammengefaßt)
- Fensterverwaltung und -funktionen:
- Routinen zur Verwaltung von Fenstern (Öffnen, Schließen, Setzen,
Scrolling, Redraw, usw.)
- Ikonifizieren von Fenstern unter MTOS (ab V1.07), MagiC (ab V3.00),
Geneva, bei vorhandenem ICFS und ansonsten ICFS-kompatibel
- ikonifizierte Darstellung (Titel und Icon) bei jedem Fenster
optional wählbar
- optional Redraw und Scrolling vollautomatisch
- Unterstützung der Winx-Scrollboxen
- im ikonifizierten Zustand werden alle Fensternachrichten auto-
matisch ausgewertet
- Fenster wechseln/schließen (Hotkeys und Menüpunkte definierbar)
- Fensterfuller per Hotkey Ctrl-#* (* auf Ziffernblock) anwählbar
- An-/Abmeldung der Fenster beim AV-Server
- optionale Hintergrundbedienung unter allen TOS-Versionen
- bei geöffneten systemmodalen Dialogen oder Popups werden Nach-
richten und zu setzende Werte automatisch bis zum Schließen
der Dialoge/Popups gepuffert und dann an die Ereignisver-
waltung weitergeleitet
- Ikonififizierung von Fenstern bei vorhandenem ICFS-Server:
(analog, falls weder MTOS- noch ICFS-Ikonifizierung vorhanden)
- [Alternate]-Closer - ein einzelnes Fenster verkleinern
(Hotkey: Ctrl-Space)
- [Shift]-Closer - alle Fenster einzeln verkleinern
(Hotkey: Ctrl-Shift-Space)
- [Control]-Closer - alle Fenster in ein Fenster verkleinern
- Mausklick in ein verkleinertes Fenster öffnet es wieder an der
alten Position
- einfache Menüverwaltung:
- An-/Abmeldung und (De-) Aktivierung der Menüleiste
- Menueinträge (de-) aktivieren sowie Menütitel (de-) selektieren
- Abfrage, ob ein Drop-Down-Menü heruntergeklappt ist
- Dialogverwaltung:
- unmodale/modale Fensterdialoge, fliegende und normale Dialoge
- beliebig viele Fenster-/fliegende Dialoge gleichzeitig
- Fensterdialoge können alle Fensterelemente des AES besitzen,
wobei die zusätzlichen Elemente von der Applikation gesetzt und
ausgewertet werden müssen
- fliegende Dialoge springen zur Mausposition bei Mausklick außer-
halb des Dialogs und fliegen optional bei Klick auf nicht-selek-
tierbares Objekt (u.a. system-modale Alertboxen)
- Rechtsklick auf Objekt im Vordergrund-Dialog (bei aktiver Hinter-
grundbedienung auch im Hintergrund-Dialog) simuliert Doppelklick
- Fensterdialoge durch zusätzlich gedrückte rechte Maustaste im
Hintergrund bedienbar (optional auch ohne rechte Maustaste)
- Tastaturbedienung der Dialoge, wobei in Dialogen mit Edit-Feldern
zusätzlich die Alternate-Taste gedrückt werden muß
(Doppelklick-Simulation durch zusätzlich gedrückte Shift-Taste)
- Tastendrücke optional zum Dialog unter dem Mauszeiger
- erweiterte Alert-Funktion:
- 18 vordefinierte Icons
- benutzerdefinierte Icons beliebiger Größe
- beliebig lange Zeilen und Buttons
- Alert-Text optional mit allen Textattributen
- maximal 16 Zeilen sowie 5 Buttons
- Buttons über Hotkey anwählbar (auch ohne Alternate-Teste)
- Buttons linksbündig/rechtsbündig/zentriert sowie optional
mit einheitlicher Breite
- System- oder Applikationsmodal
- erweiterte Möglichkeiten in Eingabe-Feldern
- Text kann per ACC_TEXT-Nachricht eingegeben werden:
- Ist der Text einzeilig und enthält keinen Zeilentrenner
(CR,LF), so wird der Text an das aktuelle Eingabefeld
angehängt. Ansonsten wird der Text eingefügt und mit jedem
Zeilentrenner wird zum nächsten Eingabefeld gesprungen, so
daß durch die Übergabe eines mehrzeiligen Textes z.B.
alle Eingabefelder ausgefüllt werden können
- exakte Cursorpositionierung per Maus
- Mauscursor wird über Eingabefeldern zum Textcursor
- Enthält die Eingabemaske eines der Zeichen ',.;:\/' und wird
dieses Zeichen eingegeben, wenn der Cursor VOR diesem Zeichen
steht, so wird das Eingabefeld bis zu diesem Zeichen mit
Leerzeichen gefüllt und der Cursor hinter dieses Zeichen
gesetzt (Beispiel: Punkt '.' in Dateimasken)
- erstes/letzes Eingabefeld (Home/Shift-Home, Shift-Up/Down)
- Wort vor/zurück (Ctrl-Left/Right)
- Anfang/Ende des Eingabesfeldes (Shift-Left/Right)
- vorheriges Eingabesfeld (Up,Shift-Tab/Enter/Return)
- nächstes Eingabefeld (Down/Tab/Enter)
- Cursor ein Zeichen nach links/rechts (Left/Right)
- Eingabefeld löschen (Esc)
- alle Eingabefelder löschen (Shift-Esc)
- Eingabefeld ab Cursor löschen (Shift-Del)
- Eingabefeld bis Cursor löschen (Shift-Backspace)
- Eingabebox für alle Ascii-Zeichen (Shift-Insert)
- Sonderzeicheneingabe durch Eingabe des dezimalen ASCII-Wertes
bei gedrückter Alternate-Taste auf dem Ziffernblock
=> sofern der ASCII-Wert nicht eindeutig ist (ASCII<=25), müssen
alle drei Stellen (evtl. mit führenden Nullen) eingegeben
werden
- Undo (Undo bzw. Shift-Undo, sofern Undo-Button vorhanden)
- History-Funktion der letzten eingegebenen Texte (Ctrl-Up/Down)
=> mit Shift-Taste: Text in History suchen
- Clipboardunterstützung:
=> mit Shift-Taste: Text an Clipboard/Eingabe-Feld anhängen
-> Ctrl-X: Text ausschneiden und in Clipboard ablegen
-> Ctrl-C: Text in Clipboard ablegen
-> Ctrl-V: Text in Eingabefeld einfügen
- Einfüge-/Überschreibenmodus (Insert)
=> Strich-/Block-Cursor
- neue zusätzliche Gültigkeitsmasken in Eingabefeldern:
'c','C': Ziffern "0-9", Komma ".,", Rechenzeichen "+-*/^",
Klammern "(){}[]"
'l','L': LED-Ziffern "0-9"
'<Ziffer>': Ziffer='0'-'9'
alle Ziffern von '0' bis <Ziffer>, z.B.
'1': Binärziffern
'7': Oktalziffernn
'9': Dezimalziffern
'h','H': Hexadezimalziffern "0-9A-F",
Umwandlung in Klein/Großbuchstaben
'u','U': ASCII 32-127, Umwandlung in Klein-/Großbuchstaben
'v','V': ASCII 32-255, Umwandlung in Klein-/Großbuchstaben
'w','W': ASCII 32-127
'y','Y': ASCII 32-255
- größtenteils automatische Anpassung (sofern möglich) der
eingegeben Zeichen an Gültigkeitsmaske
- kleiner/großer System-Font können in Eingabefeldern benutzt
werden. Unterstützt das AES auch nicht-proportionale GDOS-Fonts,
so können diese ebenfalls in Eingabefeldern verwendet werden.
- Bedeutung von Return wahlweise
- Return selektiert DEFAULT-Objekt
- Return springt zum nächsten Eingabefeld (zyklisch)
- Return selektiert beim letzten Eingabefeld das DEFAULT-Objekt
- Cookie-/Scrap-/Resource- u. Environment-Library
- einfache Funktionen zur Verwaltung von Pfad-/Dateinamen sowie zum
Aufruf des Fileselectors
- erweiterte Rectangle- & Object-Library (u.a. von PC-GEM 2.0), u.a.
- Bildschirmbereiche kopieren, löschen, invertieren, sichern
und wiederherstellen
- viele erweiterte Objekte:
- Radio-Buttons
- (TriState-) Check-Buttons
- Cycle-Buttons für Popups
- Help-Button
- Undo-Button
- Text mit Attributen
- unterstrichen,kursiv,umrandet,schattiert,fett,hell,klein/groß
- beliebige GDOS-Fonts und Größe wählbar (unabhängig vom AES!)
- Rahmen mit Titel
- Titel (=unterstrichener Text)
- beliebige Strichdicke, optional doppelt unterstrichen
- Flugecke
- Slider-Arrows (opt. umrandet)
- Niceline
- opt. von Eingabefeldern abhängiges DEFAULT-Objekt
- unmodale und modale Objekte, d.h. die Objekte kommen nur in
(un-) modalen Dialogen vor
- usw.
- Echtzeitgummiband/-schieber mit halb- oder vollautomatischer Ver-
waltung bzw. Ereignisauswertung sowie optionaler Tastaturbedienung
- variable Popup-Menüs (vollständig tastaturbedienbar (Hotkeys),
frei positionierbar)
- Hotkeys (unterstrichener Buchstabe, optional mit gedrückter
Alternate-Taste)
- vorheriger Eintrag (Cursor links/hoch)
- nächster Eintrag (Cursor rechts/runter)
- erster Eintrag (Home)
- letzter Eintrag (Shift-Home)
- Abbruch (Escape/Undo)
- aktuellen Eintrag auswählen (Space,Return)
- Dialogoptik in weiten Grenzen variierbar:
- Hintergrundbox (Muster,Farbe,Rahmen)
- Flugecke wird an Hintergrundbox angepaßt
- Rahmen (Schrift einfach/doppelt umrandet,Schriftgröße)
- Titel-Unterstrich (Länge,Dicke,einfach/doppelt unterstrichen)
- Farben der erweiterten Objekte
- viele Varianten der Radio-/Check/Cycle-Buttons sowie Sliderpfeile
- usw.
- sauber programmiert, d.h. unabhängig von
- Computer ((MEGA) ST/STE,TT,Falcon,Emulator usw.)
- Auflösung und Anzahl der Farben
- Betriebsystem (TOS,MTOS,MiNT,MagiC,Geneva,MultiGEM usw.)
- VDI/GDOS-Treiber
- Größe des System-Fonts
- usw.
4. Benutzung der Library:
---------------------------
Durch die beiliegenden, kommentierten Beispielprogramme, welche einen Teil
der Fähigkeiten demonstrieren, sowie die Dokumentation der Funktionen,
Variablen und Strukturen bzw. Konstanten in der Datei 'MANUAL.TXT' bzw.
dem Hypertext 'E_GEM.HYP' sollte die Verwendung der Library kein größeres
Problem darstellen.
Eine weitere Hilfe sind sicherlich die veröffentlichten Quelltexte der
Library sowie der WinLupe als weiteres Beispielprogramm. Sollte jemand
dennoch Probleme mit oder Fragen bzgl. der Library haben, so kann er sich
an mich wenden.
5. Bisherige EnhancedGEM-Applikationen:
-----------------------------------------
(abgesehen von weniger nützlichen Beispielprogrammen)
- WindowViewer (Datei-Viewer als kommentiertes Beispielprogramm,PD)
- ClipboardViewer (Clipboardviewer als kommentiertes Beispielprogramm,PD)
- XClipboard (XClipboard-Clone,PD)
- PreView (Resource-Previewer,PD)
- WinLupe (saubere Bildschirmlupe,PD)
- LZH-Shell (Shell zu LHarc,Fairware)
- ESS-Code (GEM-UUencoder/-decoder,Shareware) von Michel Forget
- Before Dawn (Bildschirmschoner,Shareware) von Arne Rudolph
- PLZ (Postleitzahlenkonvertierer,PD) von Andreas Schrell
- DB-Log (Loginstatistik-Programm zur D-Box,PD) von Arne Konopinski
- PassThru (Desktoperweiterung,PostCardWare) von Florian Erhard
- 800XL Deejay (800XL-Laufwerksemulator,PD) von Kolja Koischwitz
- ACP (Another Crude Player,Freeware) von Carsten Tolkmit
- Thor (GEM-Variante des Spiels Thor,Shareware) von Jean-Jaques Michel
- GDOS-Print (Ausdrucken über GDOS, PD) von Steffan Kaminski
in Arbeit:
- Simpl (Texteditor mit Highlighting,PD) von Frank Laus
- Laborant professionell (Chemie-Analyseprogramm,PD) von Jens Schulz
- u.a.
6. Zukunft
------------
In Abhängigkeit von meiner Lust, der vorhandenen Zeit, der Resonanz auf
diese Library und der Anzahl der veröffentlichten EnhancedGEM-Appli-
kationen sind für die Zukunft folgende Dinge geplant:
- Fenster-Menüs
- Font-Selector-Box
- Listboxen
- Text-Fenster
- Toolbars
- Werteingabefelder
- scrollbare Eingabefelder
- neue erweiterte Objekttypen
- Unterstützung der Help-, View- und Menü-Protokolle
- usw...